package cn.exrick.xboot.base.service

import cn.exrick.xboot.base.dto.SecurityAdvisorServiceEnterpriseDto
import cn.exrick.xboot.base.entity.SecurityAdvisorServiceEnterprise
import cn.exrick.xboot.base.vo.*
import cn.exrick.xboot.core.common.vo.PageVo
import cn.exrick.xboot.core.common.vo.Result
import com.baomidou.mybatisplus.extension.service.IService

/**
 * 安全顾问服务过的企业接口
 * @author Fei
 */
interface ISecurityAdvisorServiceEnterpriseService : IService<SecurityAdvisorServiceEnterprise?> {


    /*---------------------------管理系统---------------------------*/
    /**
     * 获取企业安全顾问列表(管理系统)
     */
    fun getEnterpriseSecurityAdvisor(pageVo: PageVo) : Result<MutableMap<String, Any?>>?


    /**
     * 移除企业安全顾问(管理系统)
     */
    fun removeEnterpriseSecurityAdvisor(ids: Array<out String>) : Result<Any>?


    /*--------------------------app部分----------------------*/

    /**
     * 安全顾问处理企业邀请信息(app)
     */
    fun createSecurityAdvisorServiceEnterprise(securityAdvisorServiceEnterpriseDto: SecurityAdvisorServiceEnterpriseDto): Result<Any>

    /**
     * 获取当前安全顾问服务过的公司列表(app)
     */
    fun getSecurityAdvisorServiceEnterpriseVoList(userId: String): MutableList<SecurityAdvisorServiceEnterpriseVo>?

    /**
     * 获取正在服务的企业列表(app)
     */
    fun getServiceEnterpriseUser(pageVo: PageVo): Result<Map<String, Any?>>?

    /**
     * 获取企业详情信息(app)
     */
    fun getServiceEnterpriseUserDetail(id:String): Result<EnterpriseUserDetailVo?>?

    /**
     * 获取某个安全顾问服务公司的企业类型
     */
    fun getCompanyTypeBySecurityAdvisorId(userId: String): String?


    /**
     * 获取企业安全顾问
     */
    fun getCompanySecurityAdvisorList(): Result<MutableList<EnterpriseSecurityAdvisorListVo>>

    /**
     * 获取离职的安全顾问
     */
    fun getLeaveSecurity(pageVo: PageVo): Result<MutableMap<String, Any?>>?


    /**
     * 获取某个安全顾问正在服务的公司
     */
    fun getSecurityAdvisorServiceEnterprise(userId: String): SecurityAdvisorServiceEnterprise?

    /**
     * 获取某个安全顾问已经服务过的公司
     */
    fun getSecurityAdvisorLeaveEnterprise(userId: String): MutableList<EnterpriseUserListVo>?
}